这篇文章是笔记,详细内容参见Mozilla的教程
完整的教材:Django Tutorial Part 8: User authentication and permissions
1, 确认settings.py的INSTALLED_APPS和MIDDLEWARE里面包含下面红色的组件:
INSTALLED_APPS = [
...
'django.contrib.auth',
'django.contrib.contenttypes',
....
MIDDLEWARE = [
...
'django.contrib.sessions.middleware.SessionMiddleware',
...
'django.contrib.auth.middleware.AuthenticationMiddleware',
....
2, 使用admin页面创建user、group。
3, 在主项目的urls.py文件内添加下面的内容:
urlpatterns += [
url('^accounts/', include('django.contrib.auth.urls')),
]
4, 上面url将为我们自动创建下列的url即相对应的form、views。
^accounts/ ^login/$ [name='login']
^accounts/ ^logout/$ [name='logout']
^accounts/ ^password_change/$ [name='password_change']
^accounts/ ^password_change/done/$ [name='password_change_done']
^accounts/ ^password_reset/$ [name='password_reset']
^accounts/ ^password_reset/done/$ [name='password_reset_done']
^accounts/ ^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$ [name='password_reset_confirm']
^accounts/ ^reset/done/$ [name='password_reset_complete']
5, 在app文件夹内的templates目录下面创建registration目录,并在settings.py 文件夹内添加:
TEMPLATES = [
{
...
'DIRS': ['./templates',],
'APP_DIRS': True,
...
6, 由此我们可以在registration目录下面创建下面的templates:
login.html – 当用户登陆网站时展示的页面
logged_out.html – 当用户登出网站后展示的页面
password_change_done.html – 当用户成功更改其账户密码后展示的页面
password_change_form.html – 用于处理用户更改其账户密码时展示的页面
password_reset_complete.html – 当用户成功重置其账户密码后展示的页面
password_reset_confirm.html – 用于处理用户输入其新账户密码时的页面
password_reset_done.html – 用于提示账户,重置密码连接已经发送到他或她的邮箱时的页面
password_reset_email.html – 邮件模板,内含重置账户密码链接
password_reset_form.html – 用于提示用户输入注册时用的邮箱地址以获得重置账户密码的链接
而如果要用URL tag指向这些templates,需要参考第四点中所列出的url。如指向password_reset_form.html可以使用下面的方式:
<p><a href="{% url 'password_reset' %}">忘记密码?</a></p>
7, 上面的这些templates都要我们自己编写。下面是编写password_reset_email.html时要添加的内容,其他templates不举例:
{{ user.get_username }}, 你好!
你可以点击如下链接以重置你的密码:
{{ protocol }}://{{ domain }}{% url "password_reset_confirm" uidb64=uid token=token %}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。